-
Notifications
You must be signed in to change notification settings - Fork 36
GnuPG for Windows. NOTE: Maintainers are not tracking this mirror. Do not make pull requests here, nor comment any commits, submit them usual way to bug tracker (https://www.gnupg.org/documentation/bts.html) or to the mailing list (https://www.gnupg.org/documentation/mailing-lists.html).
License
gpg/gpg4win
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is Gpg4win - A distribution of GnuPG and user interfaces for it. ===================================================================== See also https://gnupg.org and https://gpg4win.org This README is for the **GnuPG 2.6 based 64 bit Windows** version. About Gpg4win: -------------- The Gpg4win source code (this repository) consists of a list of source packages in the `packages` subdirectory and build rules in the files `build.sh`, `src/Makefile.am` and `src/gpg4win.mk.in`. During the build, the packages will be compiled for a Windows host system using these build rules and then packaged according to the various `.nsi` files in the folder `src/nsis`. To have the same software versions also available on Linux systems, independent of the distribution, Gpg4win can also be built for Linux as an AppImage. The rules for that can be found under `src/appimage`. Gpg4win can also be distributed as an MSI package in customized configurations. The MSI package description, using the WIX toolset, is generated from the NSIS files with the script `src/make-msi.pl`. Building: --------- To achieve reproducible results independent of your system, Gpg4win utilizes Docker; see: $ ./build.sh --help Executing $ ./build.sh without any arguments will create an installer based on the current version using a dedicated build directory. If you want to build from a Git repository or using modified sources you should do this in the source directory. 1. If you don't have a ~/.gnupg-autogen.sh file use build-aux/gpg-authcode-sign.sh --template >~/.gnupg-autogen.sh and adjust the file for your setup. 2. Check that packages/BUILDTYPE is what you want (usually "default"). 3. Run ./autogen.sh 4. Do either this cd packages ./download.sh cd .. or pass the --download option to the command below. 5. Run ./build.sh You may add certain options as show by the option --help. For example in case of a build problem you may enter the docker container using ./build.sh --shell and then cd to /build. The option --builddir can be used to specify a non-default build directory. To build an AppImage, add the parameter `--appimage` to invocations of build.sh. Building the Webpages: ---------------------- The website is in a dedicated repository on https://git.gnupg.org Adding New Packages to the Installer: ------------------------------------- This requires editing a couple of files. Here is a short run-up: Add the package download to `packages/packages.list`. Please add a comment with the current date and how you have verified the sources. For verification, PGP signatures using one of the trusted keys from the `distsigkey.gpg` file are preferable. If that is not available and upstream provides no other way to verify a checksum besides HTTPS, at least confirm the checksum from a second source and note that in the comment. e.g.: ``` # last-changed: 2023-05-03 # by ah # verified: verification of checksum from both sf and freebsd.org # server https://downloads.sourceforge.net file libfoo/foo16/1.6.40/foo-1.6.40.tar.xz chk 535b479b2467ff231a3ec6d92a525906fb8ef27978be4f66dbe05d3f3a01b3a1 ``` If the filename does not match the pattern: `pkgname-version.archive-suffix` you can use the `name` keyword to match this pattern. Add the package to `configure.ac` using the appropriate macro for the build system. `GPG4WIN_SPKG` is the macro for generic autotools based packages. Check out the available macros in `m4/gpg4win.m4`. The macro call must include the required dependencies as the second parameter. If your package is a dependency of another package, add this accordingly. This has to be done for both `APPIMAGE_` and `GPG4WIN_`. Define the build targets by adding foo to one of the package list variables like `gpg4win_spkgs` in `src/Makefile.am` and `appimage_spkgs` in `src/appimage/Makefile.am`. And if required, also add any required configure flags, etc. See existing packages for examples. If your package is only for the AppImage, you are now done. Optionally, add an rsync filter under `src/appimage/rsync-filters` to only package some of the installed files. NSIS Packaging: --------------- To have the package included in a Windows installation: Add constants for the package FOO into `src/config.nsi.in` which are then configured by the build system automatically. @HAVE_PKG_FOO@ !define gpg4win_pkg_foo @gpg4win_pkg_foo@ !define gpg4win_pkg_foo_version @gpg4win_pkg_foo_version@ Create 2 new installer scripts, named `src/inst-foo.nsi` and `uninst-foo.nsi` and add them to `EXTRA_DIST` in `src/Makefile.am`. Add FOO to `src/inst-sections.nsi` by including the `inst-foo.nsi` and `uninst-foo.nsi` scripts depending on `HAVE_PKG_FOO`. Then modify `CalcDepends`. For a dependency, first use `UnselectSection` on the new package and then select it together with the component for which it is required. Then run the usual `./autogen.sh` to create the actual configure file and build the installer as described above. NSIS Installer Slideshow ------------------------ During installation we are showing a slide show. If you want to change the contents shown add / modify files in the src/slideshow subfolder. Install them in inst-gpg4win.nsi (Add them to the list of files before g4wihelp::slide_show) and modify src/slideshow/slides.dat accordingly. Version numbers --------------- We use a specific order of version numbers. This is best shown by an example: 2.1.1 - The final 2.1.1 release. 2.1.1-beta88 - A snapshot before the 2.1.1 release. (The 88 in this example is the number of commits since the last release). The important point is that we bump up the version number before we do an release and append a suffix to mark it as a development version. This allows other software to use a configure check for the next to be released version of gpg4win. Copyright --------- A list of copyright noticed can be found in `doc/pkg-copyright.txt`. The **Gpg4win build system** is Copyright (C) 2005-2013,2019-2025 g10 Code GmbH Copyright (C) 2013-2018 Intevation GmbH Copyright (C) 2015-2018 Bundesamt für Sicherheit in der Informationstechnik Gpg4win is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Gpg4win is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses/>.
About
GnuPG for Windows. NOTE: Maintainers are not tracking this mirror. Do not make pull requests here, nor comment any commits, submit them usual way to bug tracker (https://www.gnupg.org/documentation/bts.html) or to the mailing list (https://www.gnupg.org/documentation/mailing-lists.html).
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published